package dondeestamitrasnporte.protocolo;

import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class Estadistica 
{
	
	private int mes;
	private int diaMes;
	private int diaSemana;
	private int hora;
	private int minuto;
	
	
	
	public Estadistica(int mes,int diaMes, int diaSemana, int hora, int minuto) 
	{
		super();
		this.mes = mes;
		this.diaMes = diaMes;
		this.diaSemana = diaSemana;
		this.hora = hora;
		this.minuto = minuto;
	}
	
	public Estadistica(String n) 
	{
		
		this.mes = Integer.parseInt(n.split(":")[0]);
		this.diaMes =  Integer.parseInt(n.split(":")[1]);
		this.diaSemana = Integer.parseInt(n.split(":")[2]);
		this.hora = Integer.parseInt(n.split(":")[3]);
		this.minuto = Integer.parseInt(n.split(":")[4]);
	}
	
	public String darString()
	{
		
		return mes+":"+diaMes+":"+diaSemana+":"+hora+":"+minuto;
	}

	public boolean iguales(Estadistica otra) 
	{

		if(mes!=otra.getMes() || diaMes!=otra.getDiaMes() || diaSemana != otra.getDiaSemana() || hora!= otra.getHora() || minuto!= otra.getMinuto())
		{
			try
			{
				throw new Exception();
			}
			catch(Exception e)
			{
				e.printStackTrace();
			}
			return false;
			
		}
		else
		{
			
			return true;
		}
	
	}
	
	public static Estadistica calcularEstadistica() 
	{
		Calendar c = Calendar.getInstance(TimeZone.getDefault());
		int diaDeLaSemanaActual = (c.get(Calendar.DAY_OF_WEEK)-1);
		int minutosActuales = c.get(c.MINUTE);
		int horasActuales = c.get(c.HOUR_OF_DAY);
		int mes = c.get(c.MONTH);
		int dia = c.get(c.DAY_OF_MONTH);

		diaDeLaSemanaActual = (diaDeLaSemanaActual -1)%7;
		if(diaDeLaSemanaActual<0)
		{
			diaDeLaSemanaActual = diaDeLaSemanaActual+7;
		}

		//EL FORMATO ES formato MM:DD:S:HH:MM TEXT


		String k =  mes+":"+dia+":"+diaDeLaSemanaActual+":"+horasActuales+":"+minutosActuales;
		
		return new Estadistica(k);
	}
	
	public static void agregarMinutosAEstadistica(Estadistica est, int minutos) 
	{
	
		est.setMinuto(est.getMinuto()+minutos);
		
		
		int min = est.getMinuto();
		if(min>=60)
		{
			int nuevoMin = min%60;
			if(nuevoMin<0)
			{
				nuevoMin+=60;
			}
			
			
			est.setMinuto(nuevoMin);
			
			int nuevasHoras = min/60;
			
			est.setHora(est.getHora()+ nuevasHoras);
			
			int horaNueva = est.getHora();
			if(horaNueva>=24)
			{
				int horaDef = horaNueva-24;
				int diaDef = (est.getDiaSemana() + 1)&7;
				if(diaDef<0)
				{
					diaDef+=7;
				}
				
				est.setHora(horaDef);
				est.setDiaSemana(diaDef);
			}
			

		}

		
	}

	public int getMes() {
		return mes;
	}

	public void setMes(int mes) {
		this.mes = mes;
	}

	public int getDiaMes() {
		return diaMes;
	}

	public void setDiaMes(int diaMes) {
		this.diaMes = diaMes;
	}

	public int getDiaSemana() {
		return diaSemana;
	}

	public void setDiaSemana(int diaSemana) {
		this.diaSemana = diaSemana;
	}

	public int getHora() {
		return hora;
	}

	public void setHora(int hora) {
		this.hora = hora;
	}

	public int getMinuto() {
		return minuto;
	}

	public void setMinuto(int minuto) {
		this.minuto = minuto;
	}

	
	
	

}
